﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Remoting.Contexts;
using System.Web;
using System.Xml.Linq;
using BLL;
using Models;
using Newtonsoft.Json.Linq;


namespace GoShopping.tools
{
    /// <summary>
    /// Goods 的摘要说明
    /// </summary>
    public class Goods : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            string t = Convert.ToString(context.Request.QueryString["tyID"]);//干什么用的
            //0:获取所有商品类型ID以及名称 1~10获取每一类所有商品信息 99获取前十条数据
            switch (t)
            {
                case "1":
                   getBytyID(context);
                    break;
                case "0":
                    getGoodsClass(context);
                    break;
                case "2":
                    getBytyID(context);
                    break;
                case "3":
                    getBytyID(context);
                    break;
                case "4":
                    getBytyID(context);
                    break;
                case "5":
                    getBytyID(context);
                    break;
                case "6":
                    getBytyID(context);
                    break;
                case "7":
                    getBytyID(context);
                    break;
                case "8":
                    getBytyID(context);
                    break;
                case "9":
                    getBytyID(context);
                    break;
                case "10":
                    getBytyID(context);
                    break;
                case "99":
                    getAll(context);
                    break;
                default:
                    getByKey(context);
                    break;

            }
        }
        //根据关键字进行查询
        private void getByKey(HttpContext context)
        {
            string key = Convert.ToString(context.Request.QueryString["tyID"]);
            //调用方法获取数据
            List<Models.Goods> list = GoodsBll.getBykeyBLL(key);
            //把数据转换为JSON格式
            JObject obj = new JObject();
            JArray array = JArray.FromObject(list);
            obj.Add("res", array);
            if (list.Count > 0)
            {

                context.Response.Write(obj);
            }
            else
            {
                context.Response.Write("{\"status\":\"搜索不到商品！\"}");
            }
        }

        //获取前十条数据
        private void getAll(HttpContext context)
        {
            int CountID = int.Parse(context.Request.QueryString["tyID"]);
            if (CountID==99)
            {
                //调用方法获取数据
                List<Models.Goods> list = GoodsBll.getAllBLL();
                //把数据转换为JSON格式
                JObject obj = new JObject();
                JArray array = JArray.FromObject(list);
                obj.Add("res", array);
                if (list.Count > 0)
                {
                    context.Response.Write(obj);
                }
            }
        }

        //获取所有商品类型信息
        private void getGoodsClass(HttpContext context)
        {
            //获取类型ID
            int tyID = int.Parse(context.Request.QueryString["tyID"]);
            if (tyID==0)
            {
                //调用方法获取数据
                List<GoodsClass> list = GoodsClassBLL.getAllBLL();
                //把数据转换为JSON格式
                JObject obj = new JObject();
                JArray array = JArray.FromObject(list);
                obj.Add("res", array);
                if (list.Count>0)
                {
                    context.Response.Write(obj);
                }
            }
        }

        //根据类型TYID获取
        private void getBytyID(HttpContext context)
        {
            //获取类型ID
            int tyID= int.Parse(context.Request.QueryString["tyID"]);
            //调用方法获取数据
            List<Models.Goods> list = GoodsBll.getBytyIdBLL(tyID);
            //把数据转换为JSON格式
            JObject obj = new JObject();
            JArray array =JArray.FromObject(list);
            obj.Add("res",array);
            if (list.Count > 0)
            {

                context.Response.Write(obj);
            }
            else
            {
                context.Response.Write("{\"status\":\"连接服务器失败！\"}");
            }
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}